home *** CD-ROM | disk | FTP | other *** search
- * ######################################################################
- * FPATCH 1.0
- * ######################################################################
-
- SECTION TEXT
-
- * CALCUL DE LA TAILLE DU PROGRAMME
-
- MOVE.L 4(A7),A4
- MOVE.L 12(A4),D6
- ADD.L 20(A4),D6
- ADD.L 28(A4),D6
- ADD.L #256,D6
-
- * SUPERVISEUR
-
- PEA 0.W
- MOVE.W #$20,-(A7)
- TRAP #1
- ADDQ.L #6,A7
- MOVE.L D0,D7
-
- * VERIFIE VERSION DU TOS
-
- MOVE.L $4F2.W,A0 * A0 = HEADER TOS
- MOVE.L 8(A0),A0 * A0 = ADRESSE TOS
- MOVE.W 2(A0),D0 * D0 = VERSION DU TOS
- SUB.W #$400,D0 * TOS < 4.00 ?
- BMI BAD_TOS * OUI -> SAUT
- CMP.W #5,D0 * SUPERIEUR OU EGAL A 4.05 ?
- BGE BAD_TOS * OUI -> SAUT
-
- * ----------------------------------------------------------------------
- * INITIALISATION DU SON
- * ----------------------------------------------------------------------
-
- * CONNECTE LA MATRICE
-
- MOVE.W #1,-(A7) * NO HANDCHECK
- CLR.W -(A7) * PRESCALE=0
- CLR.W -(A7) * HORLOGE 25.175 MHZ
- MOVE.W #8,-(A7) * DESTINATION DAC
- CLR.W -(A7) * SOURCE DMAPLAY
- MOVE.W #139,-(A7) * FONCTION DEVCONNECT
- TRAP #14
- LEA 12(A7),A7
-
- * INITIALISE LE MODE SONORE
-
- CLR.W -(A7) * 8 BITS STEREO
- MOVE.W #132,-(A7) * FONCTION SETMODE
- TRAP #14
- ADDQ.L #4,A7
-
- * INITIALISE GAINS EN ENTREE GAUCHE / DROITE
-
- MOVE.W #64,-(A7)
- MOVE.W #2,-(A7) * LTGAIN
- MOVE.W #130,-(A7) * FONCTION SOUNDCMD
- TRAP #14
- MOVE.W #3,2(A7) * RTGAIN
- TRAP #14
- ADDQ.L #6,A7
-
- * INITIALISE PREDIVISION (PRESCALE DANS DEVCONNECT=0)
-
- MOVE.W #3,-(A7) * 50 KHZ
- MOVE.W #6,-(A7) * SETPRESCALE
- MOVE.W #130,-(A7) * FONCTION SOUNDCMD
- TRAP #14
-
- * INITIALISE ADDER SUR MATRICE+ADC
-
- MOVE.W #4,2(A7) * FONCTION ADDERIN
- TRAP #14
-
- * INITIALISE ENTREE ADC SUR PSG
-
- MOVE.W #5,2(A7) * FONCTION ADCINPUT
- TRAP #14
- ADDQ.W #6,A7
-
- * -----------------------------------------------------------------------
- * CORRIGE BUG BCONMAP
- * -----------------------------------------------------------------------
-
- MOVE.L $B4.W,OLD_BIOS * SAUVE VECTEUR BIOS
- MOVE.L #NEW_BIOS,$B4.W * INSTALLE NOUVEAU
-
-
- * FIN DU PROGRAMME
-
- MOVE.L D7,-(A7) * PILE USER
- MOVE.W #$20,-(A7) * REPASSE EN USER MODE
- TRAP #1
-
- PEA MSG_OK(PC) * AFFICHE MESSAGE OK
- MOVE.W #9,-(A7)
- TRAP #1
-
- CLR.W (A7) * MESSAGE OK
- MOVE.L D6,-(A7) * TAILLE DU PROGRAMME
- MOVE.W #$31,-(A7) * FONCTION PTERMRES
- TRAP #1
-
- * -------------------------------------------------------------------
- * MESSAGE D'ERREUR
- * -------------------------------------------------------------------
-
- BAD_TOS:
- MOVE.L D7,-(A7) * REPASSE EN USER
- MOVE.W #$20,-(A7)
- TRAP #1
-
- PEA MSG_ERR(PC) * AFFICHE MESSAGE D'ERREUR
- MOVE.W #9,-(A7)
- TRAP #1
-
- CLR.W (A7) * QUITTE
- TRAP #1
-
- * -------------------------------------------------------------------
- * TRAP DETOURNE
- * -------------------------------------------------------------------
-
- * ~~~~~~~~~~~~~~~
- * BIOS (TRAP #13)
- * ~~~~~~~~~~~~~~~
-
- TRAP_13:
- BTST #5,(A7) * APPEL EN SUPERVISEUR ?
- BEQ.S USER_BIOS * NON -> SUITE
- LEA 8(A7),A0 * OUI -> SAUTE RETOUR+SR+STACK FRAME
- BRA.S SUITE_BIOS
-
- USER_BIOS:
- MOVE.L USP,A0 * A0 = PILE USER
-
- SUITE_BIOS:
- MOVE.W (A0),D0 * D0 = N. DE FONCTION BIOS
- CMP.W #1,D0 * BCONSTAT ?
- BEQ.S FIX_BCONMAP * OUI -> SAUT
- CMP.W #2,D0 * BCONIN ?
- BEQ.S FIX_BCONMAP * OUI -> SAUT
- CMP.W #3,D0 * BCONOUT ?
- BEQ.S FIX_BCONMAP * OUI -> SAUT
- CMP.W #8,D0 * BCOSTAT ?
- BNE.S FIN_BIOS * NON -> FIN
-
- FIX_BCONMAP:
- MOVE.W 2(A0),D0 * D0 = PERIPHERIQUE
- CMP.W #7,D0 * PERIPHERIQUE 7 (LAN) ?
- BNE.S FIN_BIOS * NON -> FIN
- MOVE.W #1,2(A0) * OUI -> PERIPH. = AUX
- FIN_BIOS:
- MOVEA.L OLD_BIOS(PC),A0 * A0 = ANCIEN VECTEUR BIOS
- JMP (A0) * ON Y SAUTE
-
- * ----------------------------------------------------------------------- *
- SECTION DATA
-
- DC.B "XBRA_FP1"
- OLD_BIOS: DS.L 1
- NEW_BIOS: DC.W $4EF9 ; CODE JMP
- DC.L TRAP_13
- MSG_ERR: DC.B 13,10
- DC.B "This version of TOS does not need FPATCH.PRG.",10,13,0
- EVEN
- MSG_OK: DC.B 13,10
- DC.B "FPATCH 1.0 installed",13,10,$00
-
- * ----------------------------------------------------------------------- *
-